「上次字串的題目,不太簡單吧?」
「是呀!沒想到字串還有這麼多的學問」菁菁跟曉欣兩位看起來私下研究了一段時間,看得出非常興奮
「那今天我們再來寫一些字串的題目吧」夏天打開 13. Roman to Integer
出乎夏天的預料,兩人幾乎是立刻寫出了答案
class Solution {
fun romanToInt(s: String): Int {
var result = 0
val map = mapOf(
'I' to 1,
'V' to 5,
'X' to 10,
'L' to 50,
'C' to 100,
'D' to 500,
'M' to 1000
)
for (i in s.indices) {
val s1 = map[s[i]] ?: continue
if (i + 1 == s.length) {
result += s1
continue
}
val s2 = map[s[i + 1]] ?: continue
if (s1 >= s2) {
result += s1
} else {
result -= s1
}
}
return result
}
}
「咦?這麼快?那這一題呢?」夏天又打開了 1480. Running Sum of 1d Array
兩人竊竊私語了一陣,寫下了解答
class Solution {
fun runningSum(nums: IntArray): IntArray {
val result = IntArray(nums.size)
result[0] = nums[0]
for (i in 1 until nums.size) {
result[i] = nums[i] + result[i - 1]
}
return result
}
}
察覺兩人的異常,夏天問道「你們兩個今天怎麼啦?瞞著我做了什麼事?」
「嘿嘿——其實我們兩個在找夏姐之前,已經先做過幾題跟字串相關的題目囉!」兩人打開 leetcode 的答題紀錄,赫然看到前幾天的答題內容。
「你們真用功!花了不少時間吧」夏天開心的說
「也不能總是做不出題目,就靠夏天姐直接幫我們解答呀!我們還是要自己練習一下的」
「兩位真是太棒了!那這一題呢?」夏天打開了 2032. Two Out of Three
「這題就要看我的囉!聖佑的 《Kotlin Collection全方位解析攻略 : 精通原理及實戰,寫出流暢好維護的程式》 我可是重複看了好幾次!」曉欣自信的寫出。
class Solution {
fun twoOutOfThree(a: IntArray, b: IntArray, c: IntArray) =
(a + b + c).toSet().filter {
arrayOf(a, b, c).count { ar -> ar.contains(it) } > 1
}
}
看著曉欣自信寫程式的樣子,想到這還是一陣子之前,連兩個數字相加都不一定寫得出來的程式新手,現在的新人進步真是太快了呢,夏天欣慰的想。
「兩位真是太棒了!今天就讓我請客吧」夏天拿出錢包
「那今天晚餐就是夏慕尼囉!」「哇!謝謝夏天姐請客!」「不要亂說!我是說伯朗咖啡裡面的餐點我請啦!」